package com.zebra.base.anno.type;

/**
 * @ClassName FuncType
 * @Description TODO 描写类的含义
 * @Author 消魂钉
 * @Date 6/1 0001 22:06
 */
public enum FuncType {

    /**
     * 等于 =
     * 例: eq("name", "老王")--->name = '老王'
     */
    EQ,
    /**
     * 不等于 <>
     * 例: ne("name", "老王")--->name <> '老王'
     */
    NE,
    /**
     * 大于 >
     * 例: gt("age", 18)--->age > 18
     */
    GT,
    /**
     * 大于等于 >=
     * 例: ge("age", 18)--->age >= 18
     */
    GE,
    /**
     * 小于 <
     * 例: lt("age", 18)--->age < 18
     */
    LT,
    /**
     * 小于等于 <=
     * 例: le("age", 18)--->age <= 18
     */
    LE,
    /**
     * BETWEEN 值1 AND 值2
     * 例: between("age", 18, 30)--->age between 18 and 30
     */
    BW,
    /**
     * NOT BETWEEN 值1 AND 值2
     * 例: notBetween("age", 18, 30)--->age not between 18 and 30
     */
    NBW,
    /**
     * LIKE '%值%'
     * like("name", "王")--->name like '%王%'
     */
    LK,
    /**
     * NOT LIKE '%值%'
     * 例: notLike("name", "王")--->name not like '%王%'
     */
    NLK,
    /**
     * LIKE '%值'
     * 例: likeLeft("name", "王")--->name like '%王'
     */
    LL,
    /**
     * LIKE '值%'
     * 例: likeRight("name", "王")--->name like '王%'
     */
    LR,
    /**
     * 字段 IS NULL
     * 例: isNull("name")--->name is null
     */
    NU,
    /**
     * 字段 IS NOT NULL
     * 例: isNotNull("name")--->name is not null
     */
    NN,
    /**
     * 字段 IN (value.get(0), value.get(1), ...)
     * in("age", 1, 2, 3)--->age in (1,2,3)
     * 字段 IN (v0, v1, ...)
     * 例: in("age", 1, 2, 3)--->age in (1,2,3)
     *
     */
    IN,
    /**
     * 字段 NOT IN (value.get(0), value.get(1), ...)
     * 例: notIn("age",{1,2,3})--->age not in (1,2,3)
     *
     *
     * 字段 NOT IN (v0, v1, ...)
     * 例: notIn("age", 1, 2, 3)--->age not in (1,2,3)
     */
    NI
}
